9028752e5b5529bed17791ce63e05a6f0113d1f2,patching/src/main/java/org/jboss/as/patching/metadata/PatchXml_1_0.java,PatchXml_1_0,writeContent,#XMLExtendedStreamWriter#Patch#,138
Before Change
// Modules
writer.writeStartElement(Element.MODULES.name);
writeSlottedItems(writer, Element.ADDED_MODULE, modulesAdd);
writeSlottedItems(writer, Element.UPDATED_MODULE, modulesUpdate);
writeSlottedItems(writer, Element.REMOVED_MODULE, modulesRemove);
writer.writeEndElement();
// Bundles
writer.writeStartElement(Element.BUNDLES.name);
writeSlottedItems(writer, Element.ADDED_BUNDLE, bundlesAdd);
writeSlottedItems(writer, Element.UPDATED_BUNDLE, bundlesUpdate);
writeSlottedItems(writer, Element.REMOVED_BUNDLE, bundlesRemove);
writer.writeEndElement();
// Misc
writer.writeStartElement(Element.MISC_FILES.name);
writeMiscItems(writer, Element.ADDED_MISC_CONTENT, miscAdd);
writeMiscItems(writer, Element.UPDATED_MISC_CONTENT, miscUpdate);
writeMiscItems(writer, Element.REMOVED_MISC_CONTENT, miscRemove);
writer.writeEndElement();
After Change
}
@Override
public void writeContent(final XMLExtendedStreamWriter writer, final Patch patch) throws XMLStreamException {
// Get started ...
writer.writeStartDocument();
writer.writeStartElement(Element.PATCH.name);
writer.writeDefaultNamespace(PatchXml.Namespace.PATCH_1_0.getNamespace());
// Name
writer.writeStartElement(Element.NAME.name);
writer.writeCharacters(patch.getPatchId());
writer.writeEndElement();
// Description
writer.writeStartElement(Element.DESCRIPTION.name);
writer.writeCharacters(patch.getDescription());
writer.writeEndElement();
// Type
final Patch.PatchType type = patch.getPatchType();
if(type == Patch.PatchType.ONE_OFF) {
writer.writeStartElement(Element.ONE_OFF.name);
} else {
writer.writeStartElement(Element.CUMULATIVE.name);
writer.writeAttribute(Attribute.RESULTING_VERSION.name, patch.getResultingVersion());
}
writeAppliesToVersions(writer, patch.getAppliesTo());
writer.writeEndElement(); // </one-off> or </cumulative>
// Sort by content and modification type
final List<ContentModification> bundlesAdd = new ArrayList<ContentModification>();
final List<ContentModification> bundlesUpdate = new ArrayList<ContentModification>();
final List<ContentModification> bundlesRemove = new ArrayList<ContentModification>();
final List<ContentModification> miscAdd = new ArrayList<ContentModification>();
final List<ContentModification> miscUpdate = new ArrayList<ContentModification>();
final List<ContentModification> miscRemove = new ArrayList<ContentModification>();
final List<ContentModification> modulesAdd = new ArrayList<ContentModification>();
final List<ContentModification> modulesUpdate = new ArrayList<ContentModification>();
final List<ContentModification> modulesRemove = new ArrayList<ContentModification>();
for(final ContentModification mod : patch.getModifications()) {
final ModificationType modificationType = mod.getType();
final ContentType contentType = mod.getItem().getContentType();
switch (contentType) {
case BUNDLE:
switch (modificationType) {
case ADD:
bundlesAdd.add(mod);
break;
case MODIFY:
bundlesUpdate.add(mod);
break;
case REMOVE:
bundlesRemove.add(mod);
break;
}
break;
case MODULE:
switch (modificationType) {
case ADD:
modulesAdd.add(mod);
break;
case MODIFY:
modulesUpdate.add(mod);
break;
case REMOVE:
modulesRemove.add(mod);
break;
}
break;
case MISC:
switch (modificationType) {
case ADD:
miscAdd.add(mod);
break;
case MODIFY:
miscUpdate.add(mod);
break;
case REMOVE:
miscRemove.add(mod);
break;
}
break;
}
}
// Modules
if (!modulesAdd.isEmpty() ||
!modulesUpdate.isEmpty() ||
!modulesRemove.isEmpty()) {
writer.writeStartElement(Element.MODULES.name);
writeSlottedItems(writer, Element.ADDED_MODULE, modulesAdd);
writeSlottedItems(writer, Element.UPDATED_MODULE, modulesUpdate);
writeSlottedItems(writer, Element.REMOVED_MODULE, modulesRemove);
writer.writeEndElement();
}
// Bundles
if (!bundlesAdd.isEmpty() ||
!bundlesUpdate.isEmpty() ||
!bundlesRemove.isEmpty()) {
writer.writeStartElement(Element.BUNDLES.name);
writeSlottedItems(writer, Element.ADDED_BUNDLE, bundlesAdd);
writeSlottedItems(writer, Element.UPDATED_BUNDLE, bundlesUpdate);
writeSlottedItems(writer, Element.REMOVED_BUNDLE, bundlesRemove);
writer.writeEndElement();
}
// Misc
if (!miscAdd.isEmpty() ||
!miscUpdate.isEmpty() ||
!miscRemove.isEmpty()) {
writer.writeStartElement(Element.MISC_FILES.name);
writeMiscItems(writer, Element.ADDED_MISC_CONTENT, miscAdd);
writeMiscItems(writer, Element.UPDATED_MISC_CONTENT, miscUpdate);
writeMiscItems(writer, Element.REMOVED_MISC_CONTENT, miscRemove);
writer.writeEndElement();